In some storage systems, such as distributed hash table (DHT), key/value store, and noSQL database systems, data is stored in the form of data objects or blocks, where each object includes a key and value. The key is used to identify the data object, and the value represents the data content. A data object may correspond to a single data structure or a set of data (e.g., a file or a set of files). Alternatively, the data object may correspond to a block or chunk of data, such as a portion of a file or a file from a set of files. The stored data objects can also be encrypted to provide protection against unauthorized users or access. Typically, the value is encrypted without the key since the key is used to identify the data object or value and is needed to successfully get or fetch the stored data objects in the storage system. An improved system is needed that provides better protection by encrypting both the value and the key.